home *** CD-ROM | disk | FTP | other *** search
/ C/C++ Users Group Library 1996 July / C-C++ Users Group Library July 1996.iso / vol_400 / 428_02 / help / vh.c < prev   
C/C++ Source or Header  |  1994-03-13  |  3KB  |  123 lines

  1. /*
  2. ** vh.c
  3. **
  4. ** View-Help, Help file viewer utility.
  5. ** Compile with any memory model but large data (compact
  6. ** or large) provides more run-time memory.
  7. **
  8. ** Pictor, Version 1.51, Copyright (c) 1992-94 SoftCircuits
  9. ** Redistributed by permission.
  10. */
  11.  
  12. #include <stdio.h>
  13. #include <stdlib.h>
  14. #include <pictor.h>
  15.  
  16. char copyright[] =
  17.     "VH - View-Help, Version 1.51, Copyright (c) 1992-94 SoftCircuits";
  18.  
  19. COLORSTRUCT hlpcolors = {
  20.     foreback(BLACK,WHITE),
  21.     foreback(BOLD|WHITE,WHITE),
  22.     foreback(WHITE,BLACK),
  23.     foreback(BLACK,BLACK)
  24. };
  25.  
  26. COLORSTRUCT msgcolors = {
  27.     foreback(BLACK,CYAN),
  28.     foreback(BOLD|WHITE,CYAN),
  29.     foreback(WHITE,BLACK),
  30.     foreback(BOLD|WHITE,BLACK)
  31. };
  32.  
  33. COLORSTRUCT bwcolors = {
  34.     foreback(WHITE,BLACK),
  35.     foreback(BOLD|WHITE,BLACK),
  36.     foreback(BLACK,WHITE),
  37.     foreback(WHITE,BLACK)
  38. };
  39.  
  40. int screen_color = foreback(BOLD|CYAN,BLUE);
  41. int status_color = foreback(BLACK,CYAN);
  42. VIDEOSTRUCT vs;
  43.  
  44. /*
  45. ** Show command line options and exit.
  46. */
  47. void showusage()
  48. {
  49.     printf("%s\n",copyright);
  50.     printf("Redistributed by permission.\n\n");
  51.     printf("Usage:\tVH <options> <hlpfile>\n\n");
  52.     printf("Valid options:\n");
  53.     printf("/b\tBlack and white. Suppress colors.\n");
  54.     printf("/q\tQuick video (CGA only).\n");
  55.  
  56.     exit(1);
  57.  
  58. } /* showusage */
  59.  
  60. void main(int argc,char *argv[])
  61. {
  62.     int i,blkwht = FALSE,qckvid = FALSE;
  63.     char *fname = NULL;
  64.  
  65.     for(i = 1;i < argc;i++) {
  66.         switch(argv[i][0]) {
  67.             case '-':
  68.             case '/':
  69.                 switch(argv[i][1]) {
  70.                     case 'b':
  71.                     case 'B':
  72.                         blkwht = TRUE;
  73.                         break;
  74.                     case 'q':
  75.                     case 'Q':
  76.                         qckvid = TRUE;
  77.                         break;
  78.                 }
  79.                 break;
  80.             default:
  81.                 if(fname == NULL)
  82.                     fname = argv[i];
  83.                 else
  84.                     showusage();
  85.                 break;
  86.         }
  87.     }
  88.     if(fname == NULL) showusage();
  89.  
  90.     initvideo();
  91.     getvconfig(&vs);
  92.  
  93.     if(!vs.colorsupport || blkwht) {
  94.         hlpcolors.normal = bwcolors.normal;
  95.         hlpcolors.boldnormal = bwcolors.boldnormal;
  96.         hlpcolors.select = bwcolors.select;
  97.         hlpcolors.boldselect = bwcolors.boldselect;
  98.         msgcolors.normal = bwcolors.normal;
  99.         msgcolors.boldnormal = bwcolors.boldnormal;
  100.         msgcolors.select = bwcolors.select;
  101.         msgcolors.boldselect = bwcolors.boldselect;
  102.         screen_color = foreback(WHITE,BLACK);
  103.         status_color = foreback(BLACK,WHITE);
  104.     }
  105.     if(qckvid) snowcheckoff();
  106.  
  107.     vcolor(screen_color); cls();
  108.     vcolor(status_color); setvpos(1,1); vrepc(' ',vs.columns);
  109.     setvpos(1,center(strlen(copyright),vs.columns)); vputs(copyright);
  110.  
  111.     hookints(&msgcolors);
  112.     initstatus(vs.rows,status_color);
  113.  
  114.     helpopen(fname,&hlpcolors,&msgcolors);
  115.     helprun(NULL);
  116.  
  117.     vcolor(foreback(WHITE,BLACK));
  118.     cls();
  119.  
  120. } /* main */
  121.  
  122.  
  123.